草庐IT

c++ - 小数位数之和

全部标签

c++ - 在包含文件名中使用项目目录

我正在开发仅C++header库,我们称之为PROJ。当库头包含另一个时,它使用:#include编译器(gcc和clang)有-Ipath-to-proj-parent.库的用户还应该在他们的包含搜索路径中有PROJ的父级。我使用这个方案的理由是,在将这个库安装到proj之后默认可搜索父目录(/usr/include/proj或/usr/local/include/proj)的子目录,图书馆用户无需指定-I选项。这个方案有缺点吗?正在使用没有proj/前缀是更常规和推荐的方式?问题不是关于是否安装在子目录中(会有proj子目录),而是如何引用包含文件。 最

c++ - 解码 Microsoft True Type 字体文件

我正在使用TFTLCD作为显示器(480x800px)的嵌入式平台(STM32F407)工作,并且想让我的用户界面在某种程度上为最终用户定制。我认为最好的字体来源是与Windows兼容的,因为它们最常见。我当前的实现使用我自己的二进制格式的自定义绘制字体和一个给出字符宽度和ascii值的描述符表,但不得不一点一点地绘制我自己的字体是乏味的。我想从SD卡中读取TrueType字体文件,并能够使用其中不同大小的字形,但我还没有看到关于如何实际实现这种魔力的直接实现。有人可以指出我正在寻找的一个很好的c/c++示例吗?作为解决问题的更好方法,我想制作一个简单的gcc命令行程序,它将使用“#”

c++ - 编译器是否有某些优化启发式来支持分支预测?如果不是,为什么不呢?

这个问题主要是阅读后的跟进thisarticleAaterSuleman从软件方面改进分支预测。作者提供了一种“展开”条件语句的方法,以增加在2位饱和计数器方案的情况下预测采用的分支的概率。这是一个摘录:Letmeexplainwithanexample.LetssupposethatXisrandomvariablebetween0and99.Iwanttorunthefollowingcode:if(X>5&&Xdo_something();但是,如果我将代码写成:if(X>5)//branchistaken95%ofthetimeif(Xdo_something();分支预测器可

c++ - "COM-like"框架解决了哪些问题?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我经常看到GObject库与类似COM-Windows的解决方案相比,一般来说,我真的不明白这个框架应该解决什么样的问题,以及采用它们有什么好处。我找到了一些小的答案,比如“它是一个可以轻松地将C库移植到其他语言的包装器”,但是GObject还提供了其他功能,比如信号/槽机制,还有其他涉及的东西,但老实说我不明白关于这件事的大局。你能用通俗易懂的英语解释一

c++ - 如何使用 c/c++ 宏参数创建字符串

我正在努力实现这一目标:char*fname="results5.txt"使用这样的宏:#defineFILENAME(NUM)"results"NUM".txt"intnumber=5;char*fname=FILENAME(number);这样可以吗?怎么了?谢谢。 最佳答案 C因为你标记了C并且想要基于宏的解决方案,所以在宏中使用##defineFILENAME(NUM)"results"#NUM".txt"^^^^^char*fname=FILENAME(5);注意这种方式不能使用变量。intnumber=5;char*fn

c++ - 添加 long 值显示不同的 o/p

我在添加长值时遇到问题例子typedefunsignedshortUINT16;UINT16*flash_dest_ptr;//thisisequaltoinhexa0XFF910000UINT16data_length;//hex=0x000002AA&dec=682//nowwhenIaddUINT16*memory_loc_ver=flash_dest_ptr+data_length;dbug_printf(DBUG_ERROR|DBUG_NAVD,"ADDhex=0x%08X\n\r",memory_loc_ver);实际O/p=0xFF910554//shouldn'to/p

java - SWIG 将生成的类从不同的模块和包导入当前类

我很难获得SWIGtypemap(javapackage)正常工作。我尝试制作一个简单版本的问题,但似乎也失败了。foo.h:#ifndefFOO_H#defineFOO_HclassFoo{public:Foo(){};intdoSomething(){return1};};#endifbar.h:#ifndefBAR_H#defineBAR_H#include"foo.h"classBar{public:Bar(){};intdoSomething(Foofoo){returnfoo.doSomething();};};#endifFoo.i%moduleFooMod%includ

c++ - 幂函数输出错误 - C

这个问题在这里已经有了答案:returnvalueofpow()getsroundeddownifassignedtoaninteger(4个答案)关闭9年前。pow()函数给出了非常奇怪的输出。我尝试了各种组合:#include#includeintmain(){intd=1;longlongn1,n2;while(d这给出了错误的输出,即99而不是100等等。现在,如果我删除其中一个变量,ans。是正确的。如果我使用常量而不是d,则ans是正确的。如果我将n1和n2取为double,则ans是正确的。所以有两个pow()函数,它们都将变量作为幂,并将类型转换为整数会产生错误的输出。

c++ - 为 C++ 库创建自动 C 包装器?

假设我有一个C++DLL。AFAIK,没有广泛采用的C++ABI标准,因此为了确保它能正常工作并且不依赖于目标应用程序的编译器,我需要将我的库包装在C接口(interface)中。有没有什么工具可以自动生成这样的界面?如果他们可以围绕C接口(interface)生成包装器,看起来就像是原始的C++对象,那也很好,例如Foo*f=newFoo();//FooWrapper*fw=Foo_create();f->bar("test");//Foo_bar(fw,"test")转换为使用生成的CABI在我的库中调用的C函数。我知道C++是相当复杂的语言,并不是所有的东西都可以轻易地包装在C接

c++ - 如何使用c宏生成函数名

宏“VER”在其他一些我无法更改的头文件中被定义为“((u_long)1)”。在我的代码中,我需要使用“test”和VER组合函数“test_1”。但是编译器报告错误,因为它是“test_((u_long)1)”而不是“test_1”生成的。我的问题是:如何编写宏来生成“test_1”?提前致谢!#defineVER((u_long)1)/*ThisisdefinedinsomeotherheaderfilewhichIcan'tchange*/#definepaste(x,y,z)x##y##z#definepaste2(x,y,z)paste(x,y,z)#definefcall(